package BitCreeekClient; /**
 * @author Ivan Litsvinenka & Emanuele Ricci
 * Classe che offre diversi metodi di Utility
 *
 */

import org.apache.commons.codec.binary.Base64;

import java.security.MessageDigest;

public class Utils {

    /**
     * Metodo che restituisce l'hash da un array di bytes
     *
     * @param source L'array di byte su cui eseguire l'hash
     * @return La trasformazione utilizzando la funzione SHA
     */
    public static String getHash ( byte[] source ) {
        
    	String testString = "Hello World";
    	byte[] encodedBytes = Base64.encodeBase64(testString.getBytes());
    	// Get encoded string
    	String encodedString = new String(encodedBytes);
    	// Get decoded string back
    	String decodedString = new String(Base64.decodeBase64(encodedBytes));

    	
    	try {
            MessageDigest md = MessageDigest.getInstance ( "SHA" );
            return ( Base64.encodeBase64String( md.digest( source) ) );
        } catch ( Exception e ) {
            e.printStackTrace ();
            return null;
        }
    }

    /**
     * Utility che trasforma da bytes in formato "umano" (mb, kb)
     *
     * @param size lunghezza del file
     * @return La stringa in formato "umano"
     */
    public static String humanSize ( int size ) {
        if ( size > ( 1024 * 1024 ) ) return size / ( 1024 * 1024 ) + "mb";
        if ( size > 1024 ) return size / 1024 + "kb";
        return size + "b";
    }

    /**
     * Utility che trasforma da bytes in formato "umano" (mb, kb)
     *
     * @param size lunghezza del file
     * @return La stringa in formato "umano"
     */
    public static String humanSize ( long size ) {
        if ( size > ( 1024 * 1024 ) ) return size / ( 1024 * 1024 ) + "mb";
        if ( size > 1024 ) return size / 1024 + "kb";
        return size + "b";
    }

}
